package models;

import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;

@Table(name = "mensaje")
@javax.persistence.Entity
public class Mensaje extends models.Entity<Long> {

	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;

	@Column
	private String mensaje;

	@Column(name = "fecha_exacta")
	private Long fechaExacta;

	@Column(name = "id_sender")
	private Long idSender;

	@Column(name = "url_imagen")
	private String urlImagen;

	@OneToMany(mappedBy = "mensaje", cascade = CascadeType.ALL, targetEntity = Recipient.class)
	private Set<Recipient> recipients;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}

	public String getUrlImagen() {
		return urlImagen;
	}

	public void setUrlImagen(String urlImagen) {
		this.urlImagen = urlImagen;
	}

	@JsonIgnore
	public Set<Recipient> getRecipients() {
		return recipients;
	}

	@JsonProperty(value = "recipients")
	public void setRecipients(Set<Recipient> list) {
		this.recipients = list;
	}

	public Long getIdSender() {
		return idSender;
	}

	public void setIdSender(Long idSender) {
		this.idSender = idSender;
	}

	public Long getFechaExacta() {

		return fechaExacta;
	}

	public void setFechaExacta(Long fechaExacta) {
		this.fechaExacta = fechaExacta;
	}

}
